/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package td3.Modele;

/** La classe Tournoi pour creer un tournoi à partir d'un Builder et d'un tableau de Joueur
 *
 * @author fredericdasilva
 * // */
public class Tournoi {
    protected Builder builder;
    Joueur[] tabjoueurs;
    
    /** Le constructeur de Tournoi
     *
     * @param B un Builder
     */
    public Tournoi(Builder B){
        
        builder =B;
        tabjoueurs = new Joueur[4];
    }
    
    /** Permet d'ajouter un Joueur à un tournoi
     *
     * @param J  un Joueur
     */
    public void addJoueur(Joueur J){
        int n=0;
        while (tabjoueurs[n]!=null && n<tabjoueurs.length){
            n++;
        }
        if (n<=tabjoueurs.length-1){
            tabjoueurs[n]=J;
            
            
        }
        
    }
    
    /** Permet le déroulement du tournoi, donc de jouer des parties e ntre différents joueurs du Tournoi
     *
     * @return Le Joueur gagnant
     */
    public String jouerTournoi(){
        int n= tabjoueurs.length;
        int gagnant;
        
        
        Plateau A;
        Jeu J = builder.getPartie(tabjoueurs[0], tabjoueurs[1]);
        A = J.P;
        J.jouerPartie();
        J.AGagne();
        J.quiAGagne();
        gagnant=A.gagnantId;
        Joueur outsider= null;
        if (gagnant==tabjoueurs[0].getId()){
            outsider=tabjoueurs[0];
        }
        else if (gagnant==tabjoueurs[1].getId()){
            outsider=tabjoueurs[1];
        }
        //System.out.println(gagnant);
        
        for (int i=2;i<n;i++){
            
            
            J = builder.getPartie(outsider, tabjoueurs[i]);
            A = J.P;
            J.jouerPartie();
            J.AGagne();
            J.quiAGagne();
            gagnant=A.gagnantId;
            if (gagnant==tabjoueurs[i].getId()){
                outsider=tabjoueurs[i];
            }
            else if (gagnant==outsider.getId()){
                
            }
        }
        return ""+gagnant+"";
    }
    
    //    public static void main (String args[]){
    //        Builder B = new BuilderJeuDePuissance4();
    //        Tournoi T = new Tournoi(B);
    //        Joueur J1 = new JoueurAleatoirePuissance4(11,"Prince");
    //        Joueur J2 = new JoueurAleatoirePuissance4(33,"WorlStar");
    //        Joueur J3 = new JoueurAleatoirePuissance4(66,"HIPpopé");
    //        Joueur J4 = new JoueurAleatoirePuissance4(99,"jojoWIcrack");
    //        T.addJoueur(J1);
    //        T.addJoueur(J2);
    //        T.addJoueur(J3);
    //        T.addJoueur(J4);
    //        String N =T.jouerTournoi();
    //        System.out.println("\n ET LE WINNER EST : "+N+"    BRAVO!!!!!!!!!!!!!!! \n");
    //
    //
    //    }
    
    
}